#include <iostream>
#include <string>
#include <memory>

class Report
{
private:
	std::string str;
<<<<<<< HEAD
public:
	Report(const std::string s) :str(s)
	{
		std::cout << "Object created!\n";
	}
	~Report() 
	{ 
		std::cout << "Object deleted!\n"; 
	}
	void comment() const 
	{
		std::cout << str << "\n"; 
	}
=======

public:
	Report(const std::string s): str(s) 
	{
		std::cout << "Object created!\n";
	}

	~Report() { std::cout << "Object deleted!\n"; }
	void comment() const { std::cout << str << "\n"; }
>>>>>>> 6fafc451c11ae7b5347f0835dfeaf6966617ca59
};

int main()
{
	{
<<<<<<< HEAD
		std::auto_ptr<Report> ps(new Report("using auto_ptr"));
		ps->comment();
	}

=======
		std::auto_ptr<Report>  ps (new Report("using auto_ptr"));
		ps->comment();
	}
>>>>>>> 6fafc451c11ae7b5347f0835dfeaf6966617ca59
	{
		std::shared_ptr<Report> ps(new Report("using shared_ptr"));
		ps->comment();
	}
<<<<<<< HEAD

=======
>>>>>>> 6fafc451c11ae7b5347f0835dfeaf6966617ca59
	{
		std::unique_ptr<Report> ps(new Report("using unique_ptr"));
		ps->comment();
	}

	std::cin.get();
<<<<<<< HEAD
	return 0;
}

=======

	return 0;
}
>>>>>>> 6fafc451c11ae7b5347f0835dfeaf6966617ca59
